package com.tyme.culture;

import com.tyme.LoopTyme;
import com.tyme.sixtycycle.SixtyCycle;

import java.util.ArrayList;
import java.util.List;

/**
 * 宜忌
 *
 * @author 6tail
 */
public class Taboo extends LoopTyme {

  public static final String[] NAMES = {"祭祀", "祈福", "求嗣", "开光", "塑绘", "齐醮", "斋醮", "沐浴", "酬神", "造庙", "祀灶", "焚香", "谢土", "出火", "雕刻", "嫁娶", "订婚", "纳采", "问名", "纳婿", "归宁", "安床", "合帐", "冠笄", "订盟", "进人口", "裁衣", "挽面", "开容", "修坟", "启钻", "破土", "安葬", "立碑", "成服", "除服", "开生坟", "合寿木", "入殓", "移柩", "普渡", "入宅", "安香", "安门", "修造", "起基", "动土", "上梁", "竖柱", "开井开池", "作陂放水", "拆卸", "破屋", "坏垣", "补垣", "伐木做梁", "作灶", "解除", "开柱眼", "穿屏扇架", "盖屋合脊", "开厕", "造仓", "塞穴", "平治道涂", "造桥", "作厕", "筑堤", "开池", "伐木", "开渠", "掘井", "扫舍", "放水", "造屋", "合脊", "造畜稠", "修门", "定磉", "作梁", "修饰垣墙", "架马", "开市", "挂匾", "纳财", "求财", "开仓", "买车", "置产", "雇庸", "出货财", "安机械", "造车器", "经络", "酝酿", "作染", "鼓铸", "造船", "割蜜", "栽种", "取渔", "结网", "牧养", "安碓磑", "习艺", "入学", "理发", "探病", "见贵", "乘船", "渡水", "针灸", "出行", "移徙", "分居", "剃头", "整手足甲", "纳畜", "捕捉", "畋猎", "教牛马", "会亲友", "赴任", "求医", "治病", "词讼", "起基动土", "破屋坏垣", "盖屋", "造仓库", "立券交易", "交易", "立券", "安机", "会友", "求医疗病", "诸事不宜", "馀事勿取", "行丧", "断蚁", "归岫"};

  /**
   * 每日宜忌数据
   */
  protected static String[] dayTaboo = {
    "8319000776262322200C1E1D,06292C2E1F;0F11185C0001092A0D7014692983847B7C2C2E302F802D2B,06454F208A;111852838470795B302F404533802D152B39201E23221D212726,0F2E1F010D29;004023222089,0F29111847;11180001032A0D70795B2C2E302F802D4E152B33714161201F26,52095847;0F17000102061979454F3A15477677,241F8A20;34357C89,7129;1551000403706A454F3A3D771F262322271E1D21,382B415220;0F000102037039297175261F1D21,454F2E156341;00076A54196348767765,7920297115528A0D382B;11180001020439332C2E302F2B5844477515634C1F2721,0F520D19267A29717020;297170192C2E2D2F2B3E363F4C,0F5215632001034720;4C78,297172380D2A2E0F474841;18115C0001702A2C2E2F5283847129795B6375802D154C,1F208A24;1811795B032C2E302F802D4163754C27261E1D2120,010D0F29521F;00401D232289,71290F4720;0F170001020E032A70692C2E302F802D2B0D7129474C201F2322,5211183809615D;0F1811000102062A0D2C2D804B2B672E2F7129,70471F8A20;0007343589,0F71296B7080;175447440D15838477656A49,2B2E1F8A2022;11187129705B79000106032A0D397B6F7C802D2C2B61756627261E0C1D21,0F2E154147;0007385476771548,52061F20;0106111839513A2C2E2D2F8C804B4723221F63,71522920;1118000717161A2C2E3371292B56433D6375363F,0F010347208A;161A7889,292E1F0F3861;11180F00012A0D70795D7B7C39332D2C2E4E4863664C,064F478A20;5452838479195D00012A0D7B7C2C2E3348156366242526201E,0F7129;00262789,292C2E1F2B2F;040318111A17332C15290D200C7A,47450638;0004031A170F11332C2E302F1571292A657677451949,70201D52;007B343589,88;00010670175B71292A152322271E,03637C2B38;04067033392C7161262322271E1D210C,;000715547776,521F;181100012C2E2F1F,0F38;70076A363F,2920;7889,292E1F;0F707B7C00012F75,5220;528403395B2F1E20,0F01;4089,88;02060418110D332C2E415B637566262322271F20,520F;0F181100012C2E7129,5220;7C343589,88;0001020603691817452C2E2D498344,412B6A096338;393589,88;076A48,45752F29384C0F204F612B;000301394F2E154763751F27,0F707A802629710D1920;4F2C2E2B383F443D433663,0F01478A2015;201E27262322,89;0F000102700D335283845329711563,38048A7D4520;6A0339332C20528384531563,29713801000F0C47806B;005089,88;291503000D332E53261F2075,0F5238584F45;003989,88;3435000789,88;150001021745512E443D65262322,2B63387C;394889,88;00036A7415384878,45751F20240F522E834F;00010203332C2E2F1558631F,0F1920707A29712646;0717363F1A2C4F3A67433D8B,71290F010347;",
    "0007010618111A332D302F15262322271E530270164C,560F7129;003989,88;073918111A17332C2E71292322271F1E20481D45548384,38002F70;700F181126151E20001A7919,;5040262789,0F712903;7911192C2E302F00030401060F1571292A75,707C2052;0079701811072C2E01060F33152627200C7A1A302F4576631F2B,80523829;39343589,88;040370181123220F1326271E2021,2915;262322271E202189,1F45;0001060403232226380F767754,56802015;0070071A010618110F5B52846775,632620;00010607155B5C26271E2021165D83,38470F29;3948007889,;528384530339454F0D297115332E2F637520,0F007058;5283845444360F11756415,2C2F29016B472E2B2038;0039504089,;0F0001022E792D3E75663D19,472063703852292B;0F000102032971152C2E19,4720637038522B;343589,88;0F52838403700D332C29712E1F27201E2322,15450175;00261F23221E201D2189,;003989,88;52838454754C2971150301022E,0F63206A0938268A41;151A83842627202322,580F7003632E1F297C;00394C786F89,0F2E4420;0704031118528384542D2E4E49201F1E1D2127,292B000C;0F706A151E201D528384544466,47010C2E292F2C38;394089,71294709636F7C44;0F0003450D3329712C2E2F1575,528A63705A20587D7C;0F111829711500010370390D332E750C201F,4552832F382B80;0034353989,522E1F;0F1118032A0D545283841A802D2C2E2B71296366774744201F26232221,010900150C;0006261F1E201D212322,0F29381118;0006547677,0F5229151F20;111800010206071979697C67474475664C,0F16298A20;000102071283542627201D210C4C78,29580F2E6352032E1F;00784C793989,0F29702E1F208A;0F03390D332C1929711563261D2E2322,382000521118750C706B;702D155483840F63262720,53292F017D4F38442B2E1F47;4089,030F565A61206B;0F181179005B712980152D4E2A0D533358,5270208A;0776776A742623221F200C211D1E,11180F2F5206802B;00343589,060F52;07565A5283845463756677261F20,010F152961;0007363F8B3989,09292C208A0F;0F11181200171A7919547638,5215201D;181179000607040D03302F5283844F3A45512B1533664C47,090F702E208A;838454151A4C200C1E23221D212726,030F522E1F;0039787989,1F2E20;111871545283842979397B7C69152B2A0D33485324251F1D1E26,6B00702F800C20;0F18110001027939706954528384685D15565A75201E1D26,29032E;00170F79191A6540,712909387C20;00676589,0F20;0F00071A706A717677492923221E202726,80522E1F;343589,0F5220;111800020D041A796933483E5347446563751F1D212026,010F09150C;262322271E201D21,52450F4F;0038262389,5215;040307177938494C,0F262070;",
    "0F00030102705283842E544779,2920454F754C38;00010275261E0C2322,6303706F0F292E1F;033945302F838475262720,297071000F2E1F38;000102030F7039453319152E2D2F63751F0C1E20,71290D3847;7917155B0001025D,0F522E3820;38394089,0001202B;0F00175058,5D6B80382E;110F0001702C2E7129201F,5206;0007396A48343589,0F20;111800012A0D2C705271292E201F,15386179;3F656477,0F2B712920;11000170792C2E7129,0F52201F;110F00017052792E1F1E,71290D2B20;0001020626232227201E,0F2E03801F;1179302F842627201E,0071292E1F;0001067052842E71291F20,030F384775;79026A17657603,522E201F;004089,0F014720;010206110F452C2E7129095B5226232227201F0C,58804B036B2B38;69687011180F791966762627201E,0352292E80;00077B7C4834353989,295220;00170F332C2E2D2F802952443F26232227201F,15637C38;006526232227201F,89;0403010218111A17332C2E2D2B15713E6575,4538206429;0007030401021811171A0F2E2322271F1E706749528483,202F2938;000102081A158483262322270C1E,700F292E;1A162623227954,0001710F29;00061A161718110F292A0C26271F21797001022F49,47;1516291211020056,063820;3840,0001202B89;0403080618111A16332E2F152A09537919702C5445490D75072B,80632038;0001081811171A160F1571292A26271E20396476452B0D,632E5238;7B34,88;010206040318110F2E292A27200C70072C302F541F392B49,3815;64262322271F2021,0F2F2938;0002070818111A16175B153E445D5452848365647576,2038454F;000701020618111A1752848354230C7027,26203829;000102261E2027,03476F700F2971382E;15391A302F83845475662627201E,0F702E46290047;0F150370002E0D3979528384532971331F1E20,477D;0F0302791566046F,29710D722A38528384202E45;383940,6370018A75202B454F66;3907,88;0F000170390D332E2971152F63751F1E20,52846A38;00397C343548,89;000102030D70332C2E29712F534426201F1E,0F3815;6526232227201F,88;7100030170391959152E2D2F2B,0F201F4F75668A38;0F030102392E15634447001F1E,293845200D7075;00161A5D454F153826201E27,7D0D29;1A454F548384,88;0F00010203700D332E2F1929711552838453261F201E2322,;0F171170792F5B1566770001032C2B802D,29387C2071;50400089,88;5C11180001027170520D2984832B15200C,03802E3863;2E260F27201F,523815292F1A;7B7C343589,520F;00060724232227261F2025,520F157929382F;003F651F0C2027232289,0F29;00076A386563,0F7D8A2066454F52754C;",
    "00077663,0F29713820;000304080618110F1A2E2D0D3371292A2C302F7566010239454E802B,6320;181117332C2E1526232227201F1E3E,38030F5229;0103040818111A155284262322271E20217A79708330,38472E63;00483F,6338200F;03041A174533302F56795B3E808339528454,700F2920;17262322274050,80387C6B;000F01111A1615292A2627200C2C670279538384543E49,6345;00010618111A16332C2E2F2D27200C07483A450D,15528438;34357B7C,88;002E2F18110F5B3315292A26271F20210C7A70710102393E19,035A;000304111A33152D2E302F71292A5284530770022B,0F634520;1A16170F13152654,3852204F;0018112C2E01040607332D292A09270C2322696870302F47023945,38205280;18111A16175B3315262322271F1E201D215D838454433E363F754551,00030F29;00700F1715262720,472E3863;3F88,2B38200F;030402111A16175B4F3A2B153E0079015D54528483696A51,7006200F;000F1320,63803829;0079181A165B332F2B262322271E2021030469702D4E49712930845D,454F;00030401061A16170F332E71292627200C02696A45514F0D2C2D4E497A,2B;007C343589,88;0F00701784831952712C2E1526271F,03380620;52848353000103297115332E2F19,0F8A514F6A66207545;6A170F19,5845754C201F4F3824;0F000301020D297115332E1F0C,16522026;1545332C2E2F84836375662620,0F0003700D71292B;000102060F17705283797823221E2027,2E7129;3F74397677658988,0F384720;5452848303152F802C2D,2E1F208A7A700F29710C7D;00010F17505840,565A803852838463;0F00030102700D19297115332C2B535448,2E45208A;0F03000102700D29713963451F0C20,528338542F158061;34357B7C89,030F;118384155B20272E1F21,0F0338;0001020607036A5D397C2163664744,0F4E25208A;5483846376656419786A,29803020;0F18110001702C2E71291F0D2B152F2127,52831620;1784832C2E5B26201F,0F010D29;00797084831754,0F2E472D4E1F;000739483F66,0F208A2B;54528384036F796A153E65,712963;0F17795B54838458,52807C38;0F5C111800015B712952841F20,756A25;01067071292C2E1F20,1103150F52;343589,0F715229;0F170070792C2E261F,0403412322;03027011170D332D2C2E2F716152838454,010F201F;6A170F1963766F,5452201F;030102703945802D2C512B7129092322270C7566,112E5283;1A5D453A332C2E2F4B25262322271F201E1D21,000F7047;007984831A160F1719,632E20471D6B;483F89,88;040318111A16175B795452848315302F6563395D,38702920;000F1323222627,2E38290315;010203040618110F3315292A271D200C6339171A712C2E30491E21,7A;0039262322271E201D210C0748766465776A,150F3829;3435,88;007018111A1617192E15382627201F656477,4F09;00030418111617332E2D2F292A52845407020D302B,090F4520;",
    "528384530003010215392C20,1112180F29560D2E1F7545;004D64547589,0F29;2A0D11180F52848353037039156358332C2E,38200026;00702C2E164C157126271F1E202425363F,29386A032B;005089,032C2E1F;0F00010206030D7129302F79802D7C2B5C4744,11701D20528438;000403110F527079156523221E2027,0129802E1F6B;00384089,15296763;000102060775261F20,71290F7015;1100010206702D804E2B2620,0F52540D;0007397B7C343589,01065220;0776776564,000F293820;00010206111803302F565A802D4E2B881F261E0C,0D0F52;00763989,0F20;110F70528475660D7129,012E1F2026;0001020617385483,030F47202B6B;0039787089,2E1F8A034F206B;0706397B7C794C636A48,520F71294720;02703918110F7919155283756626232227201E,012C2E1F0C;00384089,0F202E157C;5C0001020652835B0E03804B2D4E2B752024210C,292E565A;000103020611187B7C2D4E616439201E0C26,522E4744;000734357B7C3989,0F52832920;88,;0004031811171A5B332C2E155D52,0D292045;0089,090F15;18110F197983842E230C271F1E7A70525463,26202915;00011A1615262322271F1E200C214C,472B0F11;00190F153917701A48,472E1F2003;11037B7C2E2F7129,0F5220;007952151E20,0F2E1F;00384740,0F20;0006522E261F20,0F7129;0F11000170717B,522E1F;007B7C3989,88;076564,0F2920;,88;393589,88;0F03700D33195284835329711563,01260038206B;0F70161715232238838426271F20,7D0352;70504C7889,88;0001030239450D297115332C2E4C,0F54207052843863;110F03706A795215636626271E,0C012F38062C292B;0040395089,88;000103392E54837548,19700F58157A2038;00010203390D3329152C2B751E20,2E1F544753524583;0039343589,88;3F4889,88;000102033911170D3319152E2F0947442627201F,;393489,88;0F0102037039330D5284832971152E1F0C,0026206B;001A1715838444363F261F1E200C2322,0F476B520363;0070784889,0345201F;000102031118396375664819,1D413870208029;0370833F0F6A5215,010D582E1F202C2F5829;00387765504089,0F157C;070039201F0C2789,06030F292F;003926271E20747677642322480C06,2E1F;00073934357B7C89,0F52;073F7765644889,0120;",
    "0F110001702E2F71291F20,06;110001527B7C2E75,0F20;0F11707129,2E1F20;1811002E1F8384,0F20;0F1A0070153871291F20,7A76;3F6589,88;0F1811700001062E2F1F20,7129;18117915384C,5220;07404826271F1E2089,88;0F00010203700D332E2F192971152B52838453631F20,;00037039041A26271F1E202322,0F2F2C335129452E0D3A;0039343589,88;0F0001020370332E2F0D19297115637566302B2C3979,;528384000103451915332C2E631F2720,29716A0D0F70;653989,88;0F00010203528384157033,752971206B452F2B262E;0F000102700D332C2E297115383F631F20,034756;394889,88;528384530370331929272E2B2F631F1D20,0F156B38;1979,3F2F2E45207D;074048261F202322,0F71454F15000180;0F000102030D70332E3919528384532971152B2F201F0C,;0001020339161745514F2C190F1A152E2D2F304979,;3435073989,88;11180F5C000102030D332C2E195329711563261F202322,5284;5283840001032E1570637566302F391F,0F47297120;39701117302F713819297566,004551152C2E201D1F;0001020370528384631575712D2E4E3E581F1E1D,292C2B45262080;0F83843D363F776424,15462F2C5203297115;3F8B657789,0F2029702E7D;11180F0001020339700D29716375662E1F2620,38155680;03111A171538193E3F,0F632C2E70454F200C;110F1A6A702C2E1952838453712F6375,4520150001;5283845300010670802D2C2E4E155B201F1E232221,380F71296A;0F1118000102030D70332E2C192971153953631F0C262720,52846125;000739343589,0320;18110F3900010203700D3329711563752E1F0C201D,38525D;000102031811392E2D19528384543E4463751F20,152F1A290F;00657689,6B0F52;0001020311180F702E1F7952838468332D6749443E46630C1E1D21,292B20;0F1700707129385C363F3D1F1E232226,80412B202F;00398B7989,0F20;0F111800017C5C2C2E7129,5270153820;0F1118795B65170002195D,52382E8A20;0007711F204840,010F291538;000106025B75712904032D302F382B2A0D801E20,2E1F0F0F;0F1118060300017B7C792E39767566261F20,71298051;000739343589,8A20;074889,06520F38;5283845B79037B7C802D2C2E4E302F2B38493D4463664C1F2021,0F0D7129;63767789,522E0006206B;0F00010206181139702E1F686F6A792D2C304E153375664923221D21,52296B0D80;89,;3F8B6589,1F20;0370110F45510D3371290941614C522623222720,;1966583F6589,88;03700F,79192C2E2D715275262322271F201D2179;0F11700001522E71291F20,2B;0F117B7C2C2E71291F20,5203;00343589,88;",
    "00343589,7129565A;00060403702C2E4C154947443D651F,0D29;528384530339332E152C2F58631F20,380D000F29;006589,29704720;0F1118175C000301027039450D29332C2E2F15631F,8A5820;0F161A17452F0D33712C2E2B5443633F,150170208A03;70786289,06802E1F;0F0001020370390D332C1929712E157563548384534C,20248A;5B000102073911522C302F3A678C363F33490D482425200C1E2322,0F15382E1F61;00076A74504089,5229702C7D;0F110001708471292E1F20,0338805156;111817000106702C2E71292A0D33802D302F4E2B44,0F522520;0007343589,290F71;0F5B8370000102060403161A494447,386A418A20;11177B7C52842C2E5B1F20,060071292F0F;003889,52201F1D47;000102062A397129797B7C2E1F2425,162F5D2026;0F172C2E387129363F7566512D4E4461,0103475220;008354,06462F2E1F;0F181117795B5C007054292A0D690403332D2C2E66632B3D,8A454F38;030270170F45513A2C71295283842A0D532D24252623222720,155A382E1F;00076A0F3874485040,06707C25;5B71297000010611182A0D39792C2E332D4E80151F202621,52454F38;00077665776489,52830F208A;34357B7C7789,0F29;0F705B0004037C5D15653F1F26,522B4738;181179190E332C2E2D52637566262322271F20,;0076645089,88;0F1100017B7C702E7129,522B;1A38712975,0F20;0026271E20,2F2E1F;18117001061579,712920;0F11707B7C5271291E20,2E1F;0F00074850,8A20;0F1811705200012E71291F20,38;18117000012C2E7129,5220;88,;0F18110001261F20,0352;037B7C2E2F261F20,0F;006389,88;0F030001027039452971150D332C2F6327,20528384;020F11161A17454F2C2E2D302F2B38434C,20700163;003989,88;0F00010D0302703352838453297115632E,208A454F;03027039450D332C2F2D2971528384636626202322,5815;006A5040077448,702B2C0F2F29;0F00030102700D332E2C192971155383846375261F1E20,;0001020370450D332C2E2D152971,0F52838A201D;343589,88;52838454443D65002C2E15495D1F,0F417D712B3863;528384546315332C2E2F26201F2322,0F0D45002971756B;003889,88;393589,88;2C2E2D2B156343364C,0F4729710D708A20036A19;00788B89,0671292E;11180F000152548471702C2E2D4E303348492A156144474C63,8A201F384506;0F0300017039712952542D2C302F80380D2A363F3349483E616320,1118150C1F2E;0F006A385040740717,1F7063;0F1118000102030D70332C2E192971158384535426201E2322,471F;77766564000789,0F52201E8A;",
    "110001392E1F20,0F7129;00343589,88;0F1152702E2F71291F20,0001;0F1152702E2F71291F20,7A;00385476,521F;0F528400012E7129,0920;363F6526232227201E89,88;0F11700001397129,2E20;0F0001067C1F20,5229;0F705215261E20,012E1F;0F001A651707,565A58202E1F4763;297115030102195283840D332C2E,0F1F5863201D8A;0039077426271F1E20,0F29713852832B63;343589,88;0F03706A4F0D332C528384532E29711563,45007500;0F0370010239332E2C19528384532971156375262720,;003854637519,205D1D1F52151E21;0001020352666A,0F7020262938172F;00261F2322271E200C89,;007083624C,0F38202E7D4F45471F71;0F000102030D332C2E195283845329716375261E2322,;0F033915666A52261E272048,382E2F6329712C01;003989,88;00010203450D3329152C2E2F5375,0F638A6A1D8A38;39006A26201F,0F520D38580629712B;343589,88;528384542E03700F111869565A7566631F1E2021,297138000C;0F1118000102030D70332C2E195283845329711563261F0C20,47457525;00173883546365756619,466115201F701D475224;0F18000102111A1703154F2C2E382D2F807566,7163708A1F207D;5D0007363F232227261E21,037C0F471F20;0F00701A17830E544C5C78,7129632E1F38208A452F;2C2E5B000739337C38802D44484C2425201F1E272621,52297015;0F11185C0370332D152322528384636626271E,2F292C2E1F000106;000F7765,2E1F7C46;111879690001020370396A2E2D528384543E637566,0F380D580F2920;00013974150726271F1E200C,0F06520D297170382B45;34353989,0F20;0F528471295B795D2B155333565A446375661F201E272621,00016B0C41;0F181100010603797B7C802D302F2B6743441F202322,2952477D25;11180F71297000010604032A0D793969302F33802D636675,201F52565A1E;11180F000704030D7C684580302F153867534775,702041;00262322271F1E203F8B65,52290F0380;002C7080305C784C62,2E1F4720;000704036939487C4466,0F70112938;54528384700001020339482D301571565A363F637566,06292B201F8A;005040,522E1F0F2C20;18110001032A0D845B7129302F791533536678,0F208A1F1D;076A7626271F1E20,0D0F29382F2E;7B7C343589,0F70;11180F71297052838454792A0D33802D153853201F1E212627,012F564766;0001067011185B0D332C2E2D712909262322271F200C,0F526325;00195475667689,5229152E20;0004037B7C0F79494766754667,80293869208A;003F657789,7152290F032B;525400045B17791A565D754C7866,2E1F207C;71297C790001062A0F802D,5215705D;0470170F191A134C8384662426232227201E,;00170F7665776489,;074889,88;",
    "0F0001020D700339332C192A83842971152E1F0C20262322,0652563861;1F2027260076232289,0F295283;34357C89,0111180F2920;0F030001022A0D3945297115528384637020,476A382E1F44;5B11180001020328700D332C2E195283847115632F751F2720,290F4766;0F0001021A175D2C19152E302F7183846379,8A20704F754541;0F11180300706A2E1549466319,292F26806B382B207545;00704F0D332C2E2D15363F261F20274C,0F2906036F47;0F11180001027039302971542F7526201E,63472E151F58;390001022C2E302F1575804B2D261F20,0D0F0319707D5229717A;076A79040363660F5D363F,52292E1F20382F155601;006A38075040,0F630141202B454F;0F1118000106287129705B032C2E302F802D4E2B201F,5284583841;002876396577261F20,5283290F;07343589,0652;181100012A0D52842953411E20,2E1F0F4715;0F0001062871292E7C528384032C5C2A15767765,11185D8A206B;0F181138171A7975665B52845415,47701F8A20;0F181100062839707952542C2E302F03565A7566441F1E,0D29802B20;0F280001363F8B4326232220,2E1F47032F7D;0F17000728705448757A,522E1F15562F;00076A74173926271F1E20,0F7029522B;04170F79195D1A637566363F76,01522E8A20;700718111A302F717566,0F2B2E20;11180F000128032A0D7129302C2E2F2D802B09411F1E20,52845438;0076777566262322271F201E,0F11185229;34357C89,8A20;010670170F0E3A294152838454262322271F201E,2E181544;01023918112E2D493E52756624262322271F20,;04033918110F0D2C2E7129332D2B72528384547566,;017018110F1A2E15495247838463462322271F,;0F000106387129,2E1F;0F707500261E20,382E1F;181100012C2E2F1F20,0F52;181170792C2F7129,5220;07504089,0F01;0F0001062E7129,5220;7665261F20,0F29;077C343589,88;0F18117052000171291E20,2E1F;0F181100017B7C2E71291F20,036F;181100015B3875,2E20;0F000102702E15471F1E,294F2B452C2F2680;0F000102700D332C712E15261F201E,80036A614738;0001020370392F80712B546675201E26,1F58472E15;0039076A7426271F2048,0F79197029717A38;04031975363F6366,0F5401202C5283842E2F;3807504089,88;00020370454F0D3933192C2E2D156375261F202322,0F71;003F261F202789,88;343589,88;002627651E20232289,88;0F0D33000103452E528384297115752620,63386F70;0003391983845475,2E1F0F6A702971722A0D;0F00010203703915632719792322,8026204529715875;002E4344793F26271F20,03702C2F292B381A;001A2B5448701938754C,152E202425;0039332C2E2D2F152B4644261F1E,0F7019382971637A;11180370392A0D3329712C2F156375795B5D,450C8A00382E1F2001;5040000738,0F7D7C584F012063452B;",
    "000150402627,0F292F2B;0079110F0304062A528423222627207A19701A2C2E2F5D83,2945;001779332D2322271E2007760304,38290F;0007343589,71297063;0004037039180F332D152952262322271F0C533A83,41178047;0079192E2F030417332D1552847A5D,4E20;001A170F1379232227761926,712938;88,26205283;001A170F5B332E2D7129261E203E5D,15035283;007022230726,2E17712952302F;00077A7089,88;88,;07262723221F40,0F712952;0F000102070D70332C2E19528384297115637526201E2322,;03392D2E332F211D201F1E27,0F7015380029710D1958;343589,88;0F0102700D332C2E2F0319528384531529716345261F2322,;5283845300031929150D332C2E63,0F217045208A7175;006A79190F6F2627,6B4620453829;00211D1E232289,;0F7045332C2E71201F1D21,47011552295303;00704889,88;0F00040370396A742E15444948,458A384F20;5283845303702971150D2F,388A6A6D0F20;0007504089,88;0F00010203700D332C2E1929711552838453637526202322,;393589,88;007C343589,88;0F11180003706A4F0D332C2E192971155363751F20262322,5247464161;528384545363000103332E15,0F1F197029710D757D20;0F006A1938271779,565A4575522F801F1E63;001D23221E2789,52290F2E1F20;0F175B3975660745514F2B4825201E211D,010352292E;007007482089,2E1F5847;0F110039702C2E522F1574487B7C2D4E804B,098A20453861;111852838453546319297115030D332B2C,060F8A2E38201F;0007504089,0F291570;030102062C2E543E3D636679,380D1946297100;0339332C2E302B66201D1F27,0D2971010015520F6B;34357B7C89,7129;0F111800010203700D332C2E192971152F4B49471F270C2322,52562B20;0F111800010203391929710D1552838453,2075708A45630941;00177689,0F52804F25;00396577647969271E2322,52012E1F262061;1707702C2E71291F20,0F52000106111D;0070,0F292C2E791F;0F18110001702C2E7129,6F454F098A20;705283845B0D2F71,0F202E41;0007504089,060F71702F29;0F5C5B0001032A0D7052842C2E71291F20,1118517D46;07762623221F1E20,000F1552296B2F;89,6B;181100012A0D2C2E2F2B2D304E447129841F,0F0941613820;03020E0F18110D332C2E2D2F4971293E615244756653,8A2025;000F76,032E1F522C292B;0028397976771E232227,0F522E474420;7039170F45513A2C2E7129242526271F201D,0001035215;0001027007834878,2E388A201D;703911170E2C2E2D2F4B15712952633D,092B8A20;03047039171A533852443D363F,;",
    "111879076A1A171523221E272024,5229700F1D012E292B0C2F;390050404C89,0F5283296920;261F1E20232289,52290058363F;0F0001020370332C2E2F1575261F,2971476A45835238;0007343589,0F292F7020;00021719792B155D5466774962,010611180F2920;0F1118528384530001035C702971152B332C2E63201F1E23222621,6B75452D4F80;00177179546A76,0F52443D1F;0001020603700F7B7C2E1F692D48302F565A586366240C21,2B151A2920;0F1A1716007015713F261F2720,5263587D2B4703;005C702C2F802B154C78,5A562E1F208A454663;00037039454F0D332971152C4C48,090F476341382E;11185283847975661271393D692D15565A201E262322,292F060D0C;004089,0F52;767789,5283002920;0F111800010206032A0D097170292D302F1575761320,521F4725;000739343589,520F;181179838454637566,0F52290120;5C0F1811790070528471291F20,2F03805125;003854767789,2E1F5220;0F18110001707B7C0D7129,52565A152B20;170007386A7448363F261F1E,030F79636F20;11180F000102587B7C5283847971302F804B2B497675,09612E1F20;705C4C39171A4F0E7971295B5248,0F2E1F1D;076A171552847983546578,712970010F;004C504089,0F521547;7665262322271F201E21,0F00298071;00010206090D5B7952838454685D7B7C443D77656366201F1E,030F47454F;343589,88;790F181113332C2E2D302F1554,70012038;00040301067018111A0F332C15292A261E200C7A7919712F5D52838454,5617454F;003826232277,632E2052;000106073018110F3329271E0C7A0D75,38262015;0F005B261F20,2E2F;384C,8A20;076A696819,0F29;036F791E20,522E1F;00654C89,;262322271F1E20,7129;0F18117000012E71291F20,527A;0039343589,;1811795B5466,0120;0F1811705200012E71291F20,062B;003F89,88;000102035270392E2D5863,0F381D2B29212015;00391A6A15384C4943363F7448,0F0379472B63;00701A17794C0F302F715475,2E454F8A2024;000102037039714515750D33,201D381F092E0F11;5283845479036A2627201E,0F380D70297115012F;4C4089,88;261F201E232289,;002627241F1E20232289,;0039343589,88;0F0211195465756679,2F384570202B6A;0F0052037029710D332C15,7545584F8A201D21;0F003854,20521D21;0F0001020370390D1952838453542971631F0C,1520;0F0001022E154826271F1E203874362322,0363;0001020370392F2971152B54754C,458A1F0F2046;000370396A450D332F4B154C,0F208A7D41381F2E;",
    "00790F072C2E0103047018111A262322271E7A302F5448637545,29381556;6A79363F65,0F292B71;000118111A332C2E2D1571292A23222627200C7A791970302F5D5283845456,387C454F;000118111A332C2E2D1571292A2627200C7A1979,387C;00040318110F1519262322271E2021,52831F38;0039343589,88;00390103040618111A17332C2E262322271E157A7071302F45631F2075,807C;000118111A16175B154C26271E200C232279302F5D528384547543,0F297C7A;074889,88;88,;010670181126271F202165,2938;000770171989,0F2E2038;000106040318111A170F33292A26276A201D0C7A71077C1F1E74694F,52;88,;5283845354037029711575262720,631F58000F2E3801;0F0001020370390D3319297115632E2C752620212322,;0339332C2E1575201E26,0F520D631F29712A724738;343589,88;0F00030D70332C2E3952838453542971156375,6B20;00010203396A79637566201D211E,29387D71707A;00076527262322,1552835A201D0F38;3989,;1500443626271F1E,29710F47380D195203;000789,;0F0370390D332C192E2971637547202322,5815;031A2B7915656A,0F177001204529710D632E2F;0F03700D332C2E2971152F52838463,01004547380C;0F000102030D7033528384534529711520,634758;006A6F391974,0F2E614447702C292F71201F3852;34357B7C89,0F20;11180F00010E715229702E79692C2D2B15093954444C66,2F565A8061;000102033945332C6375201D21,0F1929710D70;07487677393F89,0F2952151F1D;0F17000102060370392E52838453331F,452F2C266A79292B2038;161A0F1526271F4C,5861034738;3950177089,522E1F0F20;11180F0001020370391952845329712B632E7B7C792D2C8020,385D15;00046A7966444C7765,010C202F38520F70292E;70545283842E71291A7933192A5D5A5040,090C384F45208A1D6B;0F11180006032A0D70332E011954838471152C202322,58477D63;0F111800037039450D2971332C632026,1F2E2B385283;003934357B7C89,0F20;00481F2023221E27262189,0F292C2E;18117900012C2E5B1F20,0F710D5229;000776776548,0F1118152E1F20;5254700001020612692D4E584647336375662E1F1E,71290D2620;006A583F232227261F20,0F29154703;00077089,522E1F8A20;0F5C707971292C2E0E032A0D6A804B2D8C2B3348634C,521109154620;04795B3F651A5D,0F52010620;117154528384292C2E302D4E092A0D50407970443D,56804100;18115452840001712970802D2C2E302F2B2A0D78791F,0F20475861;0F1811000104037115454F7677657B7C392023222726210C,52092E1F;34350089,0F20;0F111800171A454F514E3A3871157765443D23221E262720,80612E1F;111800010206037939695483845D2D2E4E446375661F262120,0F52290D71;767779392623222789,152B1F1D20;000102060717706A33392D2E4E674447482322271E210C,71292B4F20;0F171511793F76584C,0347200C1D;000789,88;"
  };

  /**
   * 时辰宜忌数据
   */
  protected static String[] hourTaboo = {
    "0F520120,6D61;0F7083520115000255,80262F;707A000855,0102;0100380806,707A2E2C;0F8352150255,70717A7D01002C0306;0F707A0120002C0855,88;,88;0F71832952202C,7A7D0102;0F70835201150255,2E2C;0F295220380255,707A01000306;0F83295201200255,70717A7D2C;0F707A0120002C0855,80262F;707A000855,0102;0F708352150255,2E01002C0806;0F522055,707A01000306;0F700120002C380855,;0F835201150255,70717A7D802C262F;0F70718329527A202C55,0102;,88;0F702952200255,7A7D01000306;0F7083527A01150255,;0F70012000380255,80262F;000855,70717A7D012C02;0F7071527A2055,2E2C;0F522055,707A01000306;0F7001200255,;0F7071297A0115202C55,80262F;0F71832952002C380806,707A0102;0F70835201150255,7A2E2C;0F200255,707A01000306;,88;0F700120002C0855,7A7D80262F;0F7083527A1555,0102;0100380806,2E2C;0F20190255,70717A7D01002C0306;0F707A0120002C0855,88;0F520120,707A6D80262F61;0F7083521555,0102;0F7071297A0115200255,2E2C;0F2952200255,707A01000306;0F835201150255,70717A7D2C;0F7001200255,80262F;,88;,7A2E7D2C;0F712915202C55,707A01000306;0F7029018020002C38,;0F835201150255,70717A7D802C262F;0F70718329527A202C55,0102;0F71832952012002,2E6D2C61;0F7029527A200255,01000806;0F71290115202C,707A55;01002C380806,707A80262F;0F8352150055,70717A7D012C02;0F715220,707A2E2C55;,88;0F7001200255,7A7D;0F835201150255,707A80262F;0F7183295220002C380806,707A010255;0F718329522002,707A2E2C55;0F2952200255,707A01000306",
    "0F700120000255,;0F70290120000855,6D61;0F707129527A15802C381955,01000806;0F7101200019020655,707A2C;0F200855,707A2E01002C0306;0F7183520115802C0255,707A;0F700120000255,;,88;0F70297A01202C380955,;0F8352150255,707A01002C0306;0F0120000855,707A2E2C;0F7071297A01158020002C0855,;0F7083520115000255,;0F70717A01201955,6D61;0F7071295215802C3855,01000806;0F0120000206,707A2C;0F290120000855,707A2E2C;0F7083527A0115202C0255,;0100380806,2E2C;,88;0F707129527A011580202C380255,;0F7083520115000255,;0F71202C1955,707A;0F707129527A1556802C1955,;0F202C4B,707A01000306;0F71201955,707A6D61;0F70202C55,01000806;0F0120000206,707A2C;0F7101201955,707A2E2C;0F7129521556802C0255,707A01000306;01002C380806,;,88;0F7129527A0115802C380255,;0F83520115000255,707A2C;0F202C0855,707A01000306;0F7129521556802C1955,707A;0F700120002C0855,;202C,6D61;0F71295215802C3802,01000806;0F2002,707A01002C0306;0F29012002,707A2E2C;0F708329527A0115202C0255,;01002C380806,;,88;0F71295215802C380855,707A01000306;0F83520115000255,707A;0F0120000855,707A2E2C;0F707129527A1556802C1955,;0F7083520115000255,;,707A01000306;0F707129527A15802C3855,01000806;0F290120000855,707A2C;0F71201955,707A2E2C;0F7183520115802C02,707A55;0F202C0855,707A01000306;,88;0F0120002C086C,707A55;0F83520115000255,707A2C;0F2901202C3809,707A55;0F7129521556802C196C,707A0100030655",
    "0F70297A0120000855,80262F;0F832952202C,0102;0F71832952012002,7A2E7D2C;0F712915202C55,707A01000306;0F718329520120002C380802066C,707A;707A01000855,80262F;0F7083527A1555,0102;0F7001200255,2E2C;,88;0F7071297A15202C55,01000806;0F7083527A0115000255,80262F;0F83521555,70717A7D012C02;0F70718329527A200255,2E01002C0806;0F52,0120002C080306;0F7183295201202C02,7A7D;0F708352150255,01800026082F06;0F7071297A20002C38080655,0102;0F0120000855,707A2E2C;0F708352150255,0120002C080306;0F832952202C02,01000806;,88;0F7071297A15202C55,0102;0F708352011500380255,2E2C;0F202C4B,01000806;0F71832952202C0255,707A;0F7083527A01150255,80262F;0F71832952202C,7A7D016D02;0F712915202C,01800026082F06;0F71292055,707A01000306;,707A01000806;0F7083527A0115000255,80262F;0F71832952202C,0102;,88;0F712915202C,707A01000306;0F835201150255,707A;0F70835201150255,80262F;0F70717A201955,0102;0F7001200255,2E2C;,707A01000306;0F7071297A15202C55,01000806;0F70297A012000380855,80262F;0F2920,70717A7D016D2C02;0F708352150255,2E01002C0806;,707A01000306;,88;0F7083527A01150255,2E2C;0F8352150038,707A010255;0F83520115000255,70717A7D2C;,707A01000306;0F5220,01000806;0F70297A0120000855,80262F;0F712915202C,016D000806;0F70718329527A01200038080206,2E2C;0F832952202C02,707A01000306;0F835201150255,707A;0F7083527A01150255,80262F;,88;0F7071297A011520002C55,;0F708352150255,01000806;0F8352150255,70717A7D01002C0806",
    "0F71832952202C02,707A;0F7029527A0120000255,;0F7071527A202C55,88;0F71295215802C3802,707A01000306;55,707A01000806;0F292055,707A2E2C;0F708329527A202C0255,01000806;0F708352150255,01000806;0F202C0855,707A01000306;,88;0F8329520115200255,707A2C;0F7083527A01150255,;0F7129521556802C1955,707A;2C3808,707A01000306;70297A0120002C0855,88;29202C,6D61;0F708329527A202C0255,01000806;0F71522055,707A2E01002C0806;0F7129521556802C0855,707A01000306;0F7083520115000255,;0F71290120002C080206,88;,88;0F0120004B,707A2C;0F8352150255,707A2E01002C0306;71295201155680002C0855,707A;0F70290120002C06,;0F832952202C0255,01000806;71295215802C38,01000806;0F7071832952202C0255,01000806;0F70718329520120002C080255,;0F70718329527A202C0255,;0F7083527A01150255,;0F70717A01200008190655,88;,88;0F8329520115200255,707A2C;0F708329527A0115202C0255,;0F707129527A011556802C026C,;2C38,01000806;0F202C0855,707A01000306;0F70712952011580202C380255,;0F718329522002,707A01002C0806;0F295201200255,707A2E2C;0F707129527A011556802C026C,;0F8352150255,707A01000306;0F70297A01202C0255,88;,88;0F8352150255,707A01002C0806;0F8352150255,707A2E01002C0806;0F712952155680202C0255,707A01000306;0F7029012000080255,;0F70718329527A202C0255,88;0F707129527A0180202C0255,;,707A01000806;0F832952202C02,707A01000306;707129527A01155680002C0855,;0F70832952011520002C0255,;0F832952202C02,01000806;,88;0F8352150255,707A01002C0306;0F83520115000255,707A2E2C",
    "0F83521555,70717A7D016D2C02;,2E2C;0F5220,707A01000306;0F0120000206,707A;0F835201150255,707A80262F;0F70717A202C381955,01000806;0F0120000206,70717A7D2C;0F7129202C1955,707A01000306;0F7083527A0115000255,;0F7083520115000255,80262F;,88;0F70717A0120003808190655,2E2C;0F8352150255,707A01000306;,2E2C;0F7083527A01150255,80262F;0F70200006,7A7D016D02;0F7071297A01152055,2E6D2C41;2C38,01000806;0F290120000855,70717A7D2C;0F70835201150255,80262F;0F702920002C,0102;0F0120004B,2E2C;,88;0F70717A0120002C3808190655,;0F7083520115000255,80262F;,0102;0F7071527A01200655,2E2C;0F702002,7A7D01000306;0F7129011520002C,6D41;0F70835215380255,01800026082F06;0F200006,70717A7D016D2C02;,2E2C;0F83521502,707A0100030655;0F7083520115000255,7A7D;,88;0F70717A20002C3808190655,016D02;0F835201150255,70717A7D2C;0F7129202C1955,707A01000306;0F520120006C,707A55;0F7083520115000255,7A7D80262F;0F712915202C,707A016D02;0F70717A20381955,2E01002C0806;0F29202C02,707A01000306;0F83295201202C02,707A;0F70835201150255,80262F;0F7083521555,7A7D016D02;,88;0F71202C38081955,707A01000306;0F83520115000255,70717A7D2C;0F70835201150255,80262F;0F70527A2055,016D02;0F0120000206,707A2E2C;0F712915202C,707A016D00034106;2C38,707A01000806;0F83520115000255,70717A7D802C262F;0F832952202C,0102;0F7083527A01150255,2E2C;0F708352150255,7A7D01000306;,88;01002C380806,80262F",
    "0F8329520102,707A202C03;0F7183520115802C0255,707A;0F29522055,707A01000306;0F70718329527A01202C0255,88;0F707129527A15803855,202C03;0F71832952200255,707A2C03;0F71832952012002,707A2E2C;0F7129521556802C0855,707A01000306;0F700120000255,;0F70010255,202C03;0F707129520115800038,202C03;,88;0F29522055,707A2E01002C0306;0F707183527A0115802C0255,;0F70297A55,202C03;0F7071297A0255,202C03;0F718329520120002C080206,;0F29200855,707A01000306;55,707A2E01002C0806;0F7071295201155680000855,202C03;0F01004B,202C03;0F835201150255,707A;0F7129521580202C3855,707A01000306;,88;0F70297A55,202C03;0F707183520115800255,202C03;0F7183295201002C38080206,;0F29200855,707A01000306;0F70297A202C02,01000806;0F70297A01000855,202C03;0F712920,707A2E01002C080306;0F7129521556802C55,707A;0F8352150255,707A01000306;0F8352011502,707A55;0F29526C,707A202C0355;,88;0F718329522002,707A2E2C;0F71835215802C0255,707A01000306;0F70202C55,01000806;0F707A01000855,202C03;0F707129520115800038,202C03;0F290180202C380955,707A6D61;0F7029527A2055,01000806;0F707129527A1556802C0255,;0F71520106,707A202C03;0F70835201150255,202C03;0F718329520120002C080206,;,88;0F200255,707A2E01002C0806;0F70718352011580000255,202C03;0F715201066C,707A202C03;0F290180202C380955,707A;0F71295215802C3855,707A01000306;0F70717A20190255,016D00086106;0F712952,0120002C080306;0F70718329527A0255,202C03;0F7183295201002C38080206,707A;0F8352150255,707A01000306;0F70202C55,01000806;,88",
    ",88;0F832952200255,70717A7D01002C0306;0F70835201150255,88;0F7083527A01150255,2E2C;0F70202C55,7A7D0102;0F7029527A012055,2E2C;0F2920380855,707A01000306;0F83520115000255,70717A7D2C;0F7083527A01150255,80262F;0F52202C,016D02;0F70835201150255,7A2E7D2C;0F71832952202C0255,707A01000306;,88;0F835201150255,70717A7D802C262F;0F712952202C,0102;0F70527A012055,2E2C;700855,7A7D01000306;0F7071297A011520002C55,;0F8352011500380255,707A80262F;0F7083521555,010002;0F71290120,707A2E2C;0F71832952202C02,707A0100030655;0F7083527A01150255,;0F7001200255,2E2C;,88;0F707A01200255,2E2C;0F83521502,707A0100030655;0F0120002C086C,707A55;0F7083527A01150255,80262F;0F712915202C,016D02;0F2901203809,707A2E2C;0F708352150255,01000806;0F7183295201202C02,88;0F7083527A01150255,80262F;0F7083527A1555,0102;0F7071297A01152055,2E2C;,88;0F707A01200255,;0F70835201150255,80262F;0F52202C,016D02;0F71522055,707A2E2C;0F712915202C02,707A01000306;0F718329520120002C3802,6D41;0F7083527A150255,01800026082F06;0F71832952202C,0102;0F70527A012055,2E2C;0855,707A01000306;707A01000855,;,88;0F522055,70717A7D012C02;0F835201150255,707A2E2C;0F71832952202C02,707A01000306;0F707183295201202C0255,7A7D;0F7083527A01150255,80262F;0F71832952002C380806,016D0241;0F70200255,2E01002C0806;0855,707A01000306;0F700120002C0855,;0F70835201150255,7A7D80262F;0F712915202C,016D02",
    "0F290120002C0855,707A;,88;0F7071295201155680002C0206,;0F70832952011520002C0255,;0F70297A01202C0255,88;0F70712901158020002C380855,;0F8352150255,707A01000306;0F71201955,707A2E6D2C61;0F70297A0120002C0206,;0F710120002C3808190655,707A;0F290120002C0855,707A;0F71835215802C380255,707A01000306;,707A2E2C;,88;0F7071295201155680002C0855,;0F7083520115000255,;0F7120081955,707A01000306;0F7071295201158020002C380206,;0F0120004B,707A2C;0F71201955,707A;0F707129521556802C55,01000806;2C3808,707A0100030655;0F71201955,707A;0F70832952011520002C0255,;0F01200255,707A2C;,88;0F7129521556802C0855,707A01000306;0F70290120002C,;0F2901202C,88;0F71295201158020002C380206,707A;0F01200255,707A2C;0F71201955,707A2E016D002C036106;0F7129521556802C02,01000806;0F8329520120002C02,;0F70297A01202C0255,88;0F7083520115000255,;0F202C0855,707A01000306;,88;0F7071297A0120002C19020655,;0F83520115000255,707A;0F70297A01202C0255,88;0F71295215802C3802,707A01000306;0F835201150255,707A2C;0F71201955,707A2E2C;0F70712952155680202C0255,01000806;0F70290120000855,;0F202C0855,707A01000306;0F70718352011580002C380255,;0F7129202C1955,707A;,88;0F707129520115568020002C0255,;0F8352150255,707A01000306;0F70717A201955,2E2C;0F70290120002C0206,;0F01200255,707A2C;0F290120000855,707A2E6D2C61;0F707129521556802C55,01000806;01002C380806,;0F71201955,707A;0F718352011580002C380255,707A",
    "0F708352150255,01000806;0F707A010255,202C03;,88;2920002C0806,0102;0F7083527A01150255,2E2C;0F200255,707A01000306;0F7029527A0155,202C03;0F7083527A011500380255,80262F;0F83295220,70717A7D016D2C02;0F70717A201955,2E01002C0806;0F70527A2055,01000806;707A55,0120002C080306;0F70835201150255,80262F;002C380806,707A010255;,88;0F2002,707A0100030655;0F7029527A010255,202C03;0F0120002C4B02,80262F;0F7071297A15202C55,0102;0F70717A0120003808190655,2E2C;0F8329522002,70717A7D01002C0806;707A55,0120002C080306;0F7083527A01150255,80262F;29202C,7A7D016D02;0F7083520115000255,2E2C;0F71202C38081955,707A01000306;,88;0F70835201150255,80262F;0F7083521555,0102;0F7083527A01150255,2E2C;0F7071297A15202C55,01000806;0F700255,0120002C080306;0F835201150255,70717A7D6D802C262F61;,016D0002;0F70297A0120000855,2E2C;0F70200255,7A7D01000306;0F708329527A01150255,202C03;0F7083527A011500380255,80262F;,88;0F70717A201955,2E2C;0F708352150255,01000806;0F708352150255,0120002C080306;0F7083527A01150255,80262F;0F70717A2000381955,0102;0F290120000855,70717A7D2C;0F70202C55,01000806;0F70527A0155,202C03;0F70835201150255,7A7D80262F;0F7083521555,0102;0F70717A0120003808190655,2E2C;,88;0F7055,0120002C080306;0F70835201150255,80262F;0F7083521555,7A7D016D02;0F70297A0120000855,2E2C;0F71202C38081955,707A01000306;0F29522055,70717A7D2C03;0F708352150255,01800026082F06;0F522055,707A0102;0F71201955,707A2E2C",
    "71295215802C380855,707A01000306;0F835201150255,707A2C;0F832952011520000255,707A2E2C;,88;0F708352150255,01000806;0F8352150255,707A01000306;0F70718329527A202C0255,;0F292055,707A2C;0F83295201200255,707A2E2C;0F707129527A011556802C55,6D41;707A55,01000806;,707A55;0F70297A0120002C0855,;0F7083520115000255,;,707A2E01002C0806;,88;0F718329520120002C080206,;0F835201150255,707A;0F83295201202C02,707A55;,707A55;0855,707A2E01002C0306;0F707129527A1556802C55,6D41;0F7029202C55,01000806;0F700120002C0855,88;0F707129527A15802C3855,01000806;0F708352150255,01000806;0F71832952012002,707A2E2C;,88;0F7083520115000255,;0F835201150255,707A;71295215802C380855,707A01000306;,707A2C;0F0120000855,707A2E2C;0F7029012000080255,6D41;0F707152202C,01000806;0F71832952202C02,01000806;0F70718329527A01202C0255,;0F708329527A0115202C0255,;0F8329520120000255,707A2E2C;,88;0F8352150255,707A01000306;0F70835201150255,88;0F707A0120002C0855,;0F700120002C080255,;,707A2E01002C0806;0F71832952202C02,01000806;0F718329522C3802,01000806;0F2952202C55,707A;0F707129527A0115802C380255,;0F2901802000,707A2C;0855,707A2E01002C0306;,88;0F70832952011520002C0255,;0F7083520115000255,;0F707129527A15802C380255,01000806;0F718329522002,707A01002C0806;0F7183295201200002,707A2E2C;0F702901202C0255,6D41;2C38,01000806;0F7071297A2055,88",
    "0F7071201955,7A7D;0F71290115202C,707A80262F;0F70835215003855,016D02;0F835201150255,70717A7D2C;,88;0F520120,707A55;0F835201150255,707A80262F;0F71291520002C,016D02;0100380806,707A2E2C55;0F71201955,707A01000306;0F71295201202C,6D61;0F5220,01800026082F06;0F7071201955,7A7D016D02;0F7129011520,707A2E2C;2C3808,707A01000306;0F0120004B,70717A7D2C;,88;0F5220,016D02;0F70835201150255,7A2E7D2C;0F712915202C,707A01000306;0F70717A0120002C3808190655,;0F7083527A01150255,80262F;0F70200006,016D0261;0F5220,2E01002C0806;0F71201955,707A01000306;0F7129011520002C,707A;0F708352011500380255,80262F;0F83521555,70717A7D016D2C02;,88;0F5220,707A01000306;0F70835201150255,7A7D;0F835201150255,707A80262F;002C380806,016D02;0F201955,70717A7D2C;0F2002,707A016D00036106;0F5220,01000806;0F835201150255,707A80262F;0F71291520002C,016D02;0F708352011500380255,2E2C;0F8352150255,70717A7D01002C0306;,88;0F7083527A01150255,80262F;0F7083527A1555,016D02;0F7129011520,707A2E2C;2C3808,707A01000306;0F71201955,707A;0F7083520115000255,80262F;0F5220,016D0002;0F7071201955,7A2E7D2C;0F712915202C,707A01000306;0F7083527A011500380255,;0F835201150255,70717A7D802C262F;,88;0F7071520120002C06,;0F29202C55,707A01000306;0F7129011520002C,707A;0F8352011500380255,707A80262F;0F71201955,707A0102;0F700120000206,6D61;0F5220,01000806",
    "0F7183295201202C02,707A55;0F7029527A0120002C0255,;0F83520115000255,707A2C03;0F83520115000255,707A2E2C;0F7129521556802C1955,707A01000306;,88;0F7129202C196C,707A55;0F7183520115803802,707A202C0355;0F29522055,707A2C;0F71832952200255,707A2E01002C0306;0F718329520120002C080206,;0F290120000855,707A;0F700255,0120002C080306;707129527A011580002C380855,;0F204B,707A01002C0306;0F835201150255,707A;0F7071297A202C1955,;,88;0F707A01200255,88;0F71835215802C380255,707A01000306;0F7183295201202C02,;0F290120000855,707A2E2C;0F7071295201155680000855,202C03;01000855,707A;0F70717A201955,01000806;0F7129520115802C3855,707A;0F8329520115200255,707A2C;0F835201150255,707A2E2C03;0F707129527A1580202C55,;,88;0F70718329527A202C0255,88;0F70718352011580002C380255,;0F01200255,707A2C03;01000855,707A2E2C;0F7129521556802C1955,707A01000306;01002C380806,707A6D41;0F7071297A202C1955,01000806;0F707129527A15803855,202C03;0F01200255,707A2C;0F8352150255,707A01000306;0F71832952202C02,;,88;0F707A010255,202C03;707129527A011580002C380855,;0F29202C3809,707A01000306;0F71201955,707A;0F7071297A202C1955,;0100380806,6D202C0341;0F7029527A2055,01000806;0F71295215802C3855,707A01000306;0F835201150255,707A2C;0F832952011520000255,707A2E2C;0F7071295201155680000855,202C03;,88;0F29202C380955,707A01000306;0F7183520115802C380255,707A;29202C,707A;0F71292055,707A2E2C03;0F707129527A1556802C55,;0F71832952202C02,707A016D00034106"
  };

  public Taboo(int index) {
    super(NAMES, index);
  }

  public Taboo(String name) {
    super(NAMES, name);
  }

  public static Taboo fromIndex(int index) {
    return new Taboo(index);
  }

  public static Taboo fromName(String name) {
    return new Taboo(name);
  }

  public Taboo next(int n) {
    return fromIndex(nextIndex(n));
  }

  private static List<Taboo> getTaboos(String[] data, int supIndex, int subIndex, int index) {
    List<Taboo> l = new ArrayList<>();
    String d = data[supIndex].split(";", -1)[subIndex].split(",", -1)[index];
    for (int i = 0, j = d.length(); i < j; i += 2) {
      l.add(Taboo.fromIndex(Integer.parseInt(d.substring(i, i + 2), 16)));
    }
    return l;
  }

  /**
   * 日宜
   *
   * @param month 月干支
   * @param day   日干支
   * @return 宜忌列表
   */
  public static List<Taboo> getDayRecommends(SixtyCycle month, SixtyCycle day) {
    return getTaboos(dayTaboo, month.getEarthBranch().getIndex(), day.getIndex(), 0);
  }

  /**
   * 日忌
   *
   * @param month 月干支
   * @param day   日干支
   * @return 宜忌列表
   */
  public static List<Taboo> getDayAvoids(SixtyCycle month, SixtyCycle day) {
    return getTaboos(dayTaboo, month.getEarthBranch().getIndex(), day.getIndex(), 1);
  }

  /**
   * 时辰宜
   *
   * @param day  日干支
   * @param hour 时辰干支
   * @return 宜忌列表
   */
  public static List<Taboo> getHourRecommends(SixtyCycle day, SixtyCycle hour) {
    return getTaboos(hourTaboo, hour.getEarthBranch().getIndex(), day.getIndex(), 0);
  }

  /**
   * 时辰忌
   *
   * @param day  日干支
   * @param hour 时辰干支
   * @return 宜忌列表
   */
  public static List<Taboo> getHourAvoids(SixtyCycle day, SixtyCycle hour) {
    return getTaboos(hourTaboo, hour.getEarthBranch().getIndex(), day.getIndex(), 1);
  }
}
